import globalPopup from './globalPopup.vue'
import Vue from 'vue';

class GlobalPopup {  
    constructor () {  
        const PopupVue = Vue.extend(globalPopup);  
        this.popupDom = new PopupVue()  
    }
       // 弹窗成功后需要重置popupConfig数据  
    // init(){  
    //     const config = {  
    //         type: 1, // 弹窗类型（1、提交反馈弹窗 2、modal弹窗 3、自定义弹窗（设为此后其他参数无效））  
    //         showCancel: false, // 是否显示取消按钮  
    //         confirmText:'确定', // 确定按钮文字  
    //         cancelText:'取消', // 取消按钮文字  
    //         closeOpacity:false,// 点击遮罩是否关闭弹窗  
    //         title: '', // 标题  
    //         content: '' ,// 内容文本  
    //         icon: 1// 反馈弹窗状态 (1、成功 2、失败 3、正常)  
    //     }  
    //     Vue.prototype.$store.dispatch('updatePopupConfig',config)  
    // }  
    // 显示弹窗  
    show (params) {  
        let that = this;  
        // Vue.store 传递参数  
        // Vue.prototype.$store.dispatch('updatePopupConfig',params)  
        // #ifdef APP-PLUS  
            uni.navigateTo({  
                url: '/pages6/invite/invite',  
                events:{  
                    confirm: function(data) {  
                      // that.init()  
                      // params.confirm && params.confirm()  
                    },  
                    cancel: function(data) {  
                      // that.init()  
                      // params.cancel && params.cancel()  
                    }  
                }  
            })  
        // #endif  

        // #ifdef H5  
        this.popupDom.cancel = params?.cancel || this.popupDom.cancel;  
        this.popupDom.confirm = params?.confirm || this.popupDom.confirm;  
        this.popupDom.vm = this.popupDom.$mount();  
        this.popupDom.show = true;  
        const lastEl = document.body.lastElementChild;  
        if(lastEl.id !== 'popup-box'){  
            setTimeout(()=>{  
                document.body.appendChild(that.popupDom.vm.$el)  
            })  
        }  
        // #endif  

    };  

    // 隐藏弹窗 h5弹窗调用回调后需要手动隐藏弹窗（因为无法在回调中获取对象本身，有大佬可以自行优化）  
    hide () {  
        // #ifdef H5  
        let that = this;  
        this.popupDom.show = false;  
        const lastEl = document.body.lastElementChild;  
        if(lastEl.id === 'popup-box'){  
            setTimeout(()=>{  
                document.body.removeChild(lastEl)  
                that.init()  
            },500)  
        }  
        // #endif  
    }  
}

export default GlobalPopup
// export default {
//   install(Vue) {
//     const Profile = Vue.extend(Invite)
    
//     // 弹出邀请
//     Vue.prototype.$openInvite = function(params) {
//       const instance = new Profile()
// 	  console.log('params',params)
//       instance._props._specia = params
//       instance.vm = instance.$mount()
//       const InviteEle = document.body.lastElementChild
//       if(InviteEle.className === 'invite-box') return
//       setTimeout(() => document.body.appendChild(instance.vm.$el))
//       return instance
//     }
 
//     // 关闭邀请
//     Vue.prototype.$closeInvite = function() {
//       const instance = new Profile()
//       instance.vm = instance.$mount()
//       const InviteEle = document.body.lastElementChild
// 	  // console.log('关闭',InviteEle)
//       if(InviteEle.className !== 'invite-box') return
//       document.body.removeChild(InviteEle)
//       return instance
//     }
//   }
// }